iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0
Software Development

iOS 從 Objective-c 進化為 Swift 的 30天之旅系列 第 23

[Day 23] Swift Struct 基本介紹運用

  • 分享至 

  • xImage
  •  

前言

最近找到要去的工作了
之前面試的30幾家公司
有一家薪水很高
應徵我要去做cordova
以及使用PHP串接遊戲
但我心裡很掙扎
畢竟我沒有很會PHP跟做網頁
雖然薪水很高 但我覺得做自己喜歡的工作
上班才會開心 比較有動力去打拼
所以我索性寄信給公司
感謝他們錄取我以及給這麼高薪水
但我也不識貪圖錢的人
因為我知道公司現階段需求即戰力人才
跟我的技能有些出入
為了公司好我忍痛放棄此次機會
結果過了幾天後
收到一家公司邀我去面試
說是我放棄那家公司的朋友開的
對我很有興趣
邀我進入公司一起寫APP
並且給我一樣的薪資
我想 我應該給自己一個機會
去這家公司試試看
畢竟目前剛買房子
存款歸零 剛好公司倒了 OC人才又沒人要
根本是人生低潮

Struct

基本上與Class差不多
可以宣告
並且給予init值
如以下程式碼

struct TestStruct {
    let product: String
    init(name : String) {
        self.product = name
    }
}

使用方式
可以在程式裡呼叫

let testStruct = TestStruct(name: "小海螺")
print(testStruct.product)

就可以得出product等於小海螺
當然裡面也可以塞方法在裡面

struct TestStruct {
    let product: String
    init(name : String) {
        self.product = name
    }
    
    let money:Int = 150
    func showPrice() {
        print(self.money)
    }
}

這樣如果要呼叫showPrice的話
如以下程式碼

let testStruct = TestStruct
testStruct.showPrice()

就可以得出money等於150
其實init可以不用填入
swift會自動填入struct 裡面缺少的變數
也可以使用Enum去豐富他

enum TestEnum {
    case productA 
    case productB
    case productC
    case productD
}
struct TestStruct {
    let product : TestEnum
    let money :Int
    let date :String
}

在程式裡面呼叫他

let testStruct = TestStruct(product: .productA, money: 150, date: "2018-10-10")
print(testStruct.product)
print(testStruct.money)
print(testStruct.date)

就可以得出我要的

productA
150
2018-10-10

結束
下次我要去找看看struct 與 class到底差別在哪邊


上一篇
[Day 22] Swift Date 進階 (現在星期幾 /這個月有幾天)
下一篇
[Day 24] Swift SQLite.swift 回傳Value Binding 轉換教學
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言